Page({

  /**
   * 页面的初始数据
   */
  data: {
    canvasWidth: 0,
    canvasHeight: 0,
    transparent: 1, // 透明度
    context1: null,
    hasDraw: false, //默认没有画
    src: null,
    id: null,
    showCanvas: false, // false 就是没有触发  true 触发
    animation: {},
    type: 1, //   1 签约   2  确认签名
    sign_img: "", //  签约图片
    show_canvas: false, //  画布展示
    detail:{},          //  签约业务    
    show:'',
  },
  showImg(e){
      let {url}    =  e.currentTarget.dataset||{};
      wx.previewImage({
        urls: [url],
        current:url
      })
  },
 async submit(){
   if (this.data.sign_img){
   let data = await wx.$api.signContract({
      sign_img:this.data.sign_img,
      enterprise_professional_facilitator_id: this.data.id
    });
    if(data.data.code=='200'){
      wx.$Toast(data.data.msg||'签约成功');
      setTimeout(()=>{
            let  page   =  getCurrentPages()[getCurrentPages().length-2];
                 page.onLoad();
                 wx.navigateBack({
                   
                 })
      },500)
    }else{
      wx.$Toast(data.data.msg);    
    }
   }else{
     wx.$Toast('请签名');
   }
    console.log(data,'sssssssssssssss')
  },
  sign_contract() {
    let to_sign = () => {
      this.setData({
        type: 2,
        show_canvas: true
      })
    }
    if (this.data.sign_img) {
      wx.showModal({
        title: '温馨提示',
        content: '签名已存在-是否继续签名',
        cancelText: "再等等",
        confirmText: "重新进入",
        confirmColor: "red",
        cancelColor: "#56D53B",
        success: res => {
          if (res.confirm) {
            to_sign()
          }
        }
      })
    } else {
      to_sign();
    }
  },
  // 确认签名
  notarize() {
    this.saveCanvasAsImg();
  },
  back(){
      wx.navigateBack({
        
      })
  },
  /*======所有自定义函数======*/

  onLoad: async function(options) {
    this.setData({
      id: options.id,
      show:options.edit
    })
    console.log(this.data.show,'ssssssssssssssssss')
    let data = await wx.$api.getFacilitatorInfo({
      enterprise_professional_facilitator_id: options.id
    })
    this.setData({
      detail:data.data.data||{},
      sign_img: data.data.data.sign_img
    })
    var context1 = wx.createCanvasContext('handWriting1');
    context1.setStrokeStyle("#000000")
    context1.setLineWidth(3);
    this.setData({
      context1: context1,
    })
  },
  touchstart1: function(e) {
    var context1 = this.data.context1;
    context1.moveTo(e.touches[0].x, e.touches[0].y);
    this.setData({
      context1: context1,
      hasDraw: true, //要签字了
    });
  },
  touchmove1: function(e) {
    var x = e.touches[0].x;
    var y = e.touches[0].y;
    var context1 = this.data.context1;
    context1.setLineWidth(3);
    context1.lineTo(x, y);
    context1.stroke();
    context1.setLineCap('round');
    context1.draw(true);
    context1.moveTo(x, y);
  },
  retDraw: function() { //重新画
    var that = this;
    var context1 = that.data.context1;
    context1.draw(); //清空画布
    that.setData({
      hasDraw: false, //没有画
      src: null,
      context1: context1
    });
  },

  //将Canvas内容转成 临时图片 --> cb 为回调函数 形参 tempImgPath 为 生成的图片临时路径
  canvasToImg(cb) { //这种写法移动端 出不来
    this.data.context1.draw(true, () => {
      wx.canvasToTempFilePath({
        canvasId: 'handWriting1',
        fileType: 'png',
        quality: 1, //图片质量
        success(res) {
          wx.showToast({
            title: '执行了吗？',
          })
          cb(res.tempFilePath);
        }
      })
    });


  },

  //保存到相册
  saveCanvasAsImg() {
    let self = this;
    wx.canvasToTempFilePath({
      canvasId: 'handWriting1',
      fileType: 'png',
      quality: 1, //图片质量
      success(res) {
        wx.uploadFile({
          url: wx.$config.uploadFile,
          filePath: res.tempFilePath,
          name: 'file',
          success: res => {
            if (res.statusCode == 200) {
              let data = typeof res.data == "string" ? JSON.parse(res.data) : res.data || {};
              wx.setStorageSync('sign_img', data.data.url || '');
              self.cancel();
              self.retDraw();
              self.setData({
                sign_img: data.data.url || '',
                type: 3,
                show_canvas: false
              });
            }
          }
        })
      },
      fail: err => {
        console.log(err, 'err')
      },
      complete(all) {
        console.log('ccc', all)
      }
    })
    console.log(11111111111111111111111111)
  },

  //预览
  previewCanvasImg() {
    wx.previewImage({
      urls: [this.data.img], //预览图片 数组
    })
  },
  subCanvas: function() {},

  //设置canvas背景色  不设置  导出的canvas的背景为透明 
  //@params：字符串  color
  setCanvasBg(color) {
    /* 将canvas背景设置为 白底，不设置  导出的canvas的背景为透明 */
    //rect() 参数说明  矩形路径左上角的横坐标，左上角的纵坐标, 矩形路径的宽度, 矩形路径的高度
    //这里是 canvasHeight - 4 是因为下边盖住边框了，所以手动减了写
    this.data.ctx.rect(0, 0, this.data.canvasWidth, this.data.canvasHeight - 4);
    // ctx.setFillStyle('red')
    this.data.ctx.setFillStyle(color)
    this.data.ctx.fill() //设置填充
    this.data.ctx.draw() //开画
  },
  /*======所有自定义函数=END=====*/
  cancel: function() {
    this.setData({
      type: 1,
      show_canvas: false
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

})